"""
@version:python3
@author:ll
@file:04-QWidget-事件案例1.py
@time:2022/2/10 16:27
"""
# 0、导入需要的包和模块
from PyQt5.Qt import *
import sys

class Mylabel(QLabel):
    def enterEvent(self, QEvent):
        print("鼠标进来了")
        self.setText("欢迎光临")
    def leaveEvent(self, QEvent):
        print("鼠标出去了")
        self.setText("谢谢惠顾")
    def keyPressEvent(self, QKeyEvent):
        print("有按键操作")
        # if QKeyEvent.key() == Qt.Key_A:
        #     print("按键A被按下了")
        # 修饰键位需要用modifiers()方法
        # if QKeyEvent.modifiers() == Qt.ControlModifier and QKeyEvent.key() == Qt.Key_S:
        if QKeyEvent.modifiers() == Qt.ControlModifier | Qt.ShiftModifier and QKeyEvent.key() == Qt.Key_S:
            # 多个修饰键之间用或运算 这里可以参照二进制8421码下 3 == 2 | 1 的问题
            # print("ctrl + S 被按下了")
            print("ctrl + shift + S 被按下了")
# 1、创建一个应用程序对象
app = QApplication(sys.argv)

# 2、控件操作
# 创建控件、设置控件、事件和信号的处理
# 2.1 创建控件
window = QWidget()
# 2.2 设置控件
window.setWindowTitle("")
window.resize(500,500)
label = Mylabel(window)
label.resize(200,200)
label.move(100,100)
label.setStyleSheet("background-color:cyan;")
label.grabKeyboard()


# 2.3 展示控件
window.show()

# 3、应用程序的执行，进入到消息循环
sys.exit(app.exec_())